import { seriesLoadScripts, loadLinks, $$ } from '../../utils/util'
// import { luckysheetPrint } from "./print";

// Dynamically load dependent scripts and styles
const dependScripts = [
    // 'expendPlugins/chart/chartmix.umd.min.js',
    'http://localhost:8080/luckysheetPluginPrint.umd.js',
]

const dependLinks = [
    // 'expendPlugins/chart/chartmix.css',
    'http://localhost:8080/luckysheetPluginPrint.css',
]

// Initialize the chart component
// function print(data, isDemo) {
//     loadLinks(dependLinks);

//     seriesLoadScripts(dependScripts, null, function () {
        
//     });
// }


// 打印预览事件实现：
function printExcel() {
    printSheet();
}

/** 打印操作：自动选中打印区域，并生成打印截图，进行打印 */
function printSheet() {
    document.querySelector('#print_html').style = "display:block";
    window.luckysheet.hideGridLines();
    //获取当前选中区域
    let currentSelected = luckysheet.getRange()
    //如果当前选中区只是一个单元格，则认为选取无效。
    if (currentSelected[0] != null && (currentSelected[0].row[1] - currentSelected[0].row[0] >= 1 || currentSelected[0].column[1] - currentSelected[0].column[0] >= 1)) {
        // 将打印区域生成base64图片（*将生成的base64编码复制粘贴到浏览器地址框，是可以预览图片样式的），生成后执行的后续打印操作，取用匿名委托函数做为参数传入
        luckysheet.getScreenshotNew((imgSrc) => {
            this.Loading=false;
            window.luckysheet.showGridLines();
            // * Lodop中的ADD_PRINT_IMAGE，也可以直接输出base64码图片，不用加img标签（如果加了img标签，会被当做超文本对待，受浏览器引擎解析的影响）
            let $img = `<img src=${imgSrc} style="max-width: 90%;" />`
            this.$nextTick(() => {
                document.querySelector('#print_html').innerHTML = $img;
            })
            document.getElementById('printExcelBtn').click();
            console.log(document.getElementById('printExcelBtn'));
            setTimeout(() => {
                document.querySelector('#print_html').style = "display:none";
            }, 100);
        });
    }
    else {
        // 获取打印区域的行列
        let RowColumn = this.getPrintSheetArea();
        // 因需要打印左边的边框，需重新设置第一列
        //RowColumn.column[0] = 0;
        // 进行选区操作
        luckysheet.setRangeShow(RowColumn);
        // 将打印区域生成base64图片（*将生成的base64编码复制粘贴到浏览器地址框，是可以预览图片样式的），生成后执行的后续打印操作，取用匿名委托函数做为参数传入
        luckysheet.getScreenshotNew((imgSrc) => {
            this.Loading=false;
            window.luckysheet.showGridLines();
            // * Lodop中的ADD_PRINT_IMAGE，也可以直接输出base64码图片，不用加img标签（如果加了img标签，会被当做超文本对待，受浏览器引擎解析的影响）
            let $img = `<img src=${imgSrc} style="max-width: 90%;" />`
            this.$nextTick(() => {
                document.querySelector('#print_html').innerHTML = $img;
            })
            document.getElementById('printExcelBtn').click();
            console.log(document.getElementById('printExcelBtn'));
            setTimeout(() => {
                document.querySelector('#print_html').style = "display:none";
            }, 100);
        });
    }
 
}
// 获取打印区域（即表格中有内容、非空白的区域）（用row，column数组表示）
function getPrintSheetArea() {
    const sheetData = luckysheet.getSheetData();
    let objRowColumn = {
        row: [0, 0], //行
        column: [0, 0], //列
    };
    // * item是行、index是行索引、it是一行里的一格、itemIndex是这一格在这一行里的列索引
    sheetData.forEach((item, index) => {
        //行数
        item.forEach((it, itemIndex) => {
            if (it !== null) {
                if (objRowColumn.row[1] < index) {
                    objRowColumn.row[1] = index; //row第二位
                }
                if (objRowColumn.column[1] < itemIndex) {
                    objRowColumn.column[1] = itemIndex; //column第二位
                }
            }
        });
    });
    return objRowColumn;
}



function print(options, config, isDemo) {
    const data = options.data;
    printExcel();
    // loadLinks(dependLinks);

    // seriesLoadScripts(dependScripts, null, function() {});
    // if (luckysheetPrint) {
    //     arrayRemoveItem(Store.asyncLoad, "print");
    //     Store.luckysheetPrint = luckysheetPrint;
    //     const link = document.createElement("link");
    //     link.setAttribute("rel", "stylesheet");
    //     link.setAttribute("type", "text/css");
    //     link.setAttribute("href", "./expendPlugins/print/print.css");
    //     document.head.appendChild(link);
    // }
}


export { print }
